<div class="body-wrap" xmlns:ext="http://www.extjs.com"><div class="top-tools"><a class="inner-link" href="#Ext.data.MemoryProxy-props"><img src="images/default/s.gif" class="item-icon icon-prop">Properties</a>&#13;<a class="inner-link" href="#Ext.data.MemoryProxy-methods"><img src="images/default/s.gif" class="item-icon icon-method">Methods</a>&#13;<a class="inner-link" href="#Ext.data.MemoryProxy-events"><img src="images/default/s.gif" class="item-icon icon-event">Events</a>&#13;<a class="inner-link" href="#Ext.data.MemoryProxy-configs"><img src="images/default/s.gif" class="item-icon icon-config">Config Options</a>&#13;<a class="bookmark" href="../docs/?class=Ext.data.MemoryProxy"><img src="images/default/s.gif" class="item-icon icon-fav">Direct Link</a>&#13;</div><div class="inheritance res-block"><pre class="res-block-inner"><a href="output/Ext.util.Observable.html" ext:member="" ext:cls="Ext.util.Observable">Observable</a>
  <img src="resources/elbow-end.gif"><a href="output/Ext.data.Proxy.html" ext:member="" ext:cls="Ext.data.Proxy">Proxy</a>
    <img src="resources/elbow-end.gif"><a href="output/Ext.data.ClientProxy.html" ext:member="" ext:cls="Ext.data.ClientProxy">ClientProxy</a>
      <img src="resources/elbow-end.gif">MemoryProxy</pre></div><h1>Class <a href="source/MemoryProxy.html#cls-Ext.data.MemoryProxy">Ext.data.MemoryProxy</a></h1><table cellspacing="0"><tr><td class="label">Package:</td><td class="hd-info">Ext.data</td></tr><tr><td class="label">Defined In:</td><td class="hd-info"><a href="source/MemoryProxy.html#cls-Ext.data.MemoryProxy">MemoryProxy.js</a></td></tr><tr><td class="label">Class:</td><td class="hd-info"><a href="source/MemoryProxy.html#cls-Ext.data.MemoryProxy">MemoryProxy</a></td></tr><tr><td class="label">Extends:</td><td class="hd-info"><a href="output/Ext.data.ClientProxy.html" ext:cls="Ext.data.ClientProxy" ext:member="">ClientProxy</a></td></tr></table><div class="description"><p>In-memory proxy. This proxy simply uses a local variable for data storage/retrieval, so its contents are
lost on every page refresh. Usually this Proxy isn't used directly, serving instead as a helper to a 
<a href="output/Ext.data.Store.html" ext:cls="Ext.data.Store">Store</a> where a reader is required to load data. For example, say we have a Store for
a User model and have some inline data we want to load, but this data isn't in quite the right format: we 
can use a MemoryProxy with a JsonReader to read it into our Store:</p>
<pre><code><i>//this is the model we<em>'ll be using <b>in</b> the store</i>
Ext.regModel('</em>User<em>', {
    fields: [
        {name: '</em>id<em>',    type: '</em>int<em>'},
        {name: '</em>name<em>',  type: '</em>string<em>'},
        {name: '</em>phone<em>', type: '</em>string<em>', mapping: '</em>phoneNumber<em>'}
    ]
});

<i>//this data doesn'</em>t line up to our model fields - the phone field is called phoneNumber</i>
<b>var</b> data = {
    users: [
        {
            id: 1,
            name: <em>'Ed Spencer'</em>,
            phoneNumber: <em>'555 1234'</em>
        },
        {
            id: 2,
            name: <em>'Abe Elias'</em>,
            phoneNumber: <em>'666 1234'</em>
        }
    ]
};

<i>//note how we set the <em>'root'</em> <b>in</b> the reader to match the data structure above</i>
<b>var</b> store = <b>new</b> Ext.data.Store({
    autoLoad: true,
    model: <em>'User'</em>,
    data : data,
    proxy: {
        type: <em>'memory'</em>,
        reader: {
            type: <em>'json'</em>,
            root: <em>'users'</em>
        }
    }
});</code></pre></div><div class="hr"></div><a id="Ext.data.MemoryProxy-configs"></a><h2>Config Options</h2><table cellspacing="0" class="member-table"><tbody><tr><th colspan="2" class="sig-header">Config Options</th><th class="msource-header">Defined By</th></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Proxy-batchOrder"></a><b><a href="source/Proxy.html#cfg-Ext.data.Proxy-batchOrder">batchOrder</a></b> : String<div class="mdesc"><div class="short">Comma-separated ordering 'create', 'update' and 'destroy' actions when batching. Override this
to set a different ord...</div><div class="long">Comma-separated ordering 'create', 'update' and 'destroy' actions when batching. Override this
to set a different order for the batched CRUD actions to be executed in. Defaults to 'create,update,destroy'</div></div></td><td class="msource"><a href="output/Ext.data.Proxy.html#batchOrder" ext:member="#batchOrder" ext:cls="Ext.data.Proxy">Proxy</a></td></tr><tr class="config-row  "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.MemoryProxy-data"></a><b><a href="source/MemoryProxy.html#cfg-Ext.data.MemoryProxy-data">data</a></b> : Array<div class="mdesc">Optional array of Records to load into the Proxy</div></td><td class="msource">MemoryProxy</td></tr><tr class="config-row  inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Proxy-defaultReaderType"></a><b><a href="source/Proxy.html#cfg-Ext.data.Proxy-defaultReaderType">defaultReaderType</a></b> : String<div class="mdesc">The default registered reader type. Defaults to 'json'</div></td><td class="msource"><a href="output/Ext.data.Proxy.html#defaultReaderType" ext:member="#defaultReaderType" ext:cls="Ext.data.Proxy">Proxy</a></td></tr><tr class="config-row  inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Proxy-defaultWriterType"></a><b><a href="source/Proxy.html#cfg-Ext.data.Proxy-defaultWriterType">defaultWriterType</a></b> : String<div class="mdesc">The default registered writer type. Defaults to 'json'</div></td><td class="msource"><a href="output/Ext.data.Proxy.html#defaultWriterType" ext:member="#defaultWriterType" ext:cls="Ext.data.Proxy">Proxy</a></td></tr><tr class="config-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-listeners"></a><b><a href="source/Observable.html#cfg-Ext.util.Observable-listeners">listeners</a></b> : Object<div class="mdesc"><div class="short">A config object containing one or more event handlers to be added to this
object during initialization.  This should ...</div><div class="long"><p>A config object containing one or more event handlers to be added to this
object during initialization.  This should be a valid listeners config object as specified in the
<a href="output/Ext.util.Observable.html#Ext.util.Observable-addListener" ext:member="addListener" ext:cls="Ext.util.Observable">addListener</a> example for attaching multiple handlers at once.</p>
<br><p><b><u>DOM events from ExtJs <a href="output/Ext.Component.html" ext:cls="Ext.Component">Components</a></u></b></p>
<br><p>While <i>some</i> ExtJs Component classes export selected DOM events (e.g. "click", "mouseover" etc), this
is usually only done when extra value can be added. For example the <a href="output/Ext.DataView.html" ext:cls="Ext.DataView">DataView</a>'s
<b><code><a href="output/Ext.DataView.html#Ext.DataView-click" ext:member="click" ext:cls="Ext.DataView">click</a></code></b> event passing the node clicked on. To access DOM
events directly from a a child element of a Component, we need to specify this explicitly:
<pre><code><b>new</b> Ext.Panel({
    width: 400,
    height: 200,
    dockedItems: [{
        xtype: <em>'toolbar'</em>
    }],
    listeners: {
        click: {
            element: <em>'el'</em>, <i>//bind to the underlying el property on the panel</i>
            fn: <b>function</b>(){ console.log(<em>'click el'</em>); }
        },
        dblclick: {
            element: <em>'body'</em>, <i>//bind to the underlying body property on the panel</i>
            fn: <b>function</b>(){ console.log(<em>'dblclick body'</em>); }
        }
    }
});</code></pre>
</p></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#listeners" ext:member="#listeners" ext:cls="Ext.util.Observable">Observable</a></td></tr></tbody></table><a id="Ext.data.MemoryProxy-props"></a><h2>Public Properties</h2><div class="no-members">This class has no public properties.</div><a id="Ext.data.MemoryProxy-methods"></a><h2>Public Methods</h2><table cellspacing="0" class="member-table"><tbody><tr><th colspan="2" class="sig-header">Method</th><th class="msource-header">Defined By</th></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-addEvents"></a><b><a href="source/Observable.html#method-Ext.util.Observable-addEvents">addEvents</a></b>(&nbsp;<code>Object|String&nbsp;o</code>,&nbsp;<code>string&nbsp;Optional.</code>&nbsp;)
    :
                                        void<div class="mdesc"><div class="short">Adds the specified events to the list of events which this Observable may fire.</div><div class="long">Adds the specified events to the list of events which this Observable may fire.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>o</code> : Object|String<div class="sub-desc">Either an object with event names as properties with a value of <code>true</code>
or the first event name string if multiple event names are being passed as separate parameters.</div></li><li><code>Optional.</code> : string<div class="sub-desc">Event name if multiple event names are being passed as separate parameters.
Usage:<pre><code>this.addEvents(<em>'storeloaded'</em>, <em>'storecleared'</em>);</code></pre></div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#addEvents" ext:member="#addEvents" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-addListener"></a><b><a href="source/Observable.html#method-Ext.util.Observable-addListener">addListener</a></b>(&nbsp;<code>String&nbsp;eventName</code>,&nbsp;<code>Function&nbsp;handler</code>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;scope</code>]</span>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;options</code>]</span>&nbsp;)
    :
                                        void<div class="mdesc"><div class="short">Appends an event handler to this object.</div><div class="long">Appends an event handler to this object.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The name of the event to listen for.</div></li><li><code>handler</code> : Function<div class="sub-desc">The method the event invokes.</div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope (<code><b>this</b></code> reference) in which the handler function is executed.
<b>If omitted, defaults to the object which fired the event.</b></div></li><li><code>options</code> : Object<div class="sub-desc">(optional) An object containing handler configuration.
properties. This may contain any of the following properties:<ul>
<li><b>scope</b> : Object<div class="sub-desc">The scope (<code><b>this</b></code> reference) in which the handler function is executed.
<b>If omitted, defaults to the object which fired the event.</b></div></li>
<li><b>delay</b> : Number<div class="sub-desc">The number of milliseconds to delay the invocation of the handler after the event fires.</div></li>
<li><b>single</b> : Boolean<div class="sub-desc">True to add a handler to handle just the next firing of the event, and then remove itself.</div></li>
<li><b>buffer</b> : Number<div class="sub-desc">Causes the handler to be scheduled to run in an <a href="output/Ext.util.DelayedTask.html" ext:cls="Ext.util.DelayedTask">Ext.util.DelayedTask</a> delayed
by the specified number of milliseconds. If the event fires again within that time, the original
handler is <em>not</em> invoked, but the new handler is scheduled in its place.</div></li>
<li><b>target</b> : Observable<div class="sub-desc">Only call the handler if the event was fired on the target Observable, <i>not</i>
if the event was bubbled up from a child Observable.</div></li>
<li><b>element</b> : String<div class="sub-desc">The element reference on the component to bind the event to. This is used to bind DOM events to underlying elements on <a href="output/Ext.Component.html" ext:cls="Ext.Component">Components</a>. - This option is only valid for listeners bound to <a href="output/Ext.Component.html" ext:cls="Ext.Component">Components</a></div></li>
</ul><br>
<p>
<b>Combining Options</b><br>
Using the options argument, it is possible to combine different types of listeners:<br>
<br>
A delayed, one-time listener.
<pre><code>myPanel.on(<em>'hide'</em>, this.onClick, this, {
single: true,
delay: 100
});</code></pre>
<p>
<b>Attaching multiple handlers in 1 call</b><br>
The method also allows for a single argument to be passed which is a config object containing properties
which specify multiple handlers.
<p></div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#addListener" ext:member="#addListener" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-addManagedListener"></a><b><a href="source/Observable.html#method-Ext.util.Observable-addManagedListener">addManagedListener</a></b>(&nbsp;<code>Observable|Element&nbsp;item</code>,&nbsp;<code>Object|String&nbsp;ename</code>,&nbsp;<code>Function&nbsp;fn</code>,&nbsp;<code>Object&nbsp;scope</code>,&nbsp;<code>Object&nbsp;opt</code>&nbsp;)
    :
                                        void<div class="mdesc"><div class="short">Adds listeners to any Observable object (or Element) which are automatically removed when this Component
is destroyed...</div><div class="long"><p>Adds listeners to any Observable object (or Element) which are automatically removed when this Component
is destroyed.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>item</code> : Observable|Element<div class="sub-desc">The item to which to add a listener/listeners.</div></li><li><code>ename</code> : Object|String<div class="sub-desc">The event name, or an object containing event name properties.</div></li><li><code>fn</code> : Function<div class="sub-desc">Optional. If the <code>ename</code> parameter was an event name, this
is the handler function.</div></li><li><code>scope</code> : Object<div class="sub-desc">Optional. If the <code>ename</code> parameter was an event name, this
is the scope (<code>this</code> reference) in which the handler function is executed.</div></li><li><code>opt</code> : Object<div class="sub-desc">Optional. If the <code>ename</code> parameter was an event name, this
is the <a href="output/Ext.util.Observable.html#Ext.util.Observable-addListener" ext:member="addListener" ext:cls="Ext.util.Observable">addListener</a> options.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#addManagedListener" ext:member="#addManagedListener" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Proxy-batch"></a><b><a href="source/Proxy.html#method-Ext.data.Proxy-batch">batch</a></b>(&nbsp;<code>Object&nbsp;operations</code>,&nbsp;<code>Object&nbsp;listeners</code>&nbsp;)
    :
                                        Ext.data.Batch<div class="mdesc"><div class="short">Performs a batch of Operations, in the order specified by batchOrder. Used internally by
Ext.data.Store's sync method...</div><div class="long">Performs a batch of <a href="output/Ext.data.Operation.html" ext:cls="Ext.data.Operation">Operations</a>, in the order specified by <a href="output/Ext.data.Proxy.html#Ext.data.Proxy-batchOrder" ext:member="batchOrder" ext:cls="Ext.data.Proxy">batchOrder</a>. Used internally by
<a href="output/Ext.data.Store.html" ext:cls="Ext.data.Store">Ext.data.Store</a>'s <a href="output/Ext.data.Store.html#Ext.data.Store-sync" ext:member="sync" ext:cls="Ext.data.Store">sync</a> method. Example usage:
<pre><code>myProxy.batch({
create : [myModel1, myModel2],
update : [myModel3],
destroy: [myModel4, myModel5]
});</code></pre>
Where the myModel* above are <a href="output/Ext.data.Model.html" ext:cls="Ext.data.Model">Model</a> instances - in this case 1 and 2 are new instances and have not been 
saved before, 3 has been saved previously but needs to be updated, and 4 and 5 have already been saved but should now be destroyed.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>operations</code> : Object<div class="sub-desc">Object containing the Model instances to act upon, keyed by action name</div></li><li><code>listeners</code> : Object<div class="sub-desc">Optional listeners object passed straight through to the Batch - see <a href="output/Ext.data.Batch.html" ext:cls="Ext.data.Batch">Ext.data.Batch</a></div></li></ul><strong>Returns:</strong><ul><li><code>Ext.data.Batch</code><div class="sub-desc">The newly created Ext.data.Batch object</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Proxy.html#batch" ext:member="#batch" ext:cls="Ext.data.Proxy">Proxy</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.ClientProxy-clear"></a><b><a href="source/ClientProxy.html#method-Ext.data.ClientProxy-clear">clear</a></b>()
    :
                                        void<div class="mdesc"><div class="short">Abstract function that must be implemented by each ClientProxy subclass. This should purge all record data
from the c...</div><div class="long">Abstract function that must be implemented by each ClientProxy subclass. This should purge all record data
from the client side storage, as well as removing any supporting data (such as lists of record IDs)<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.ClientProxy.html#clear" ext:member="#clear" ext:cls="Ext.data.ClientProxy">ClientProxy</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-clearListeners"></a><b><a href="source/Observable.html#method-Ext.util.Observable-clearListeners">clearListeners</a></b>()
    :
                                        void<div class="mdesc"><div class="short">Removes all listeners for this object including the managed listeners</div><div class="long">Removes all listeners for this object including the managed listeners<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#clearListeners" ext:member="#clearListeners" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-clearManagedListeners"></a><b><a href="source/Observable.html#method-Ext.util.Observable-clearManagedListeners">clearManagedListeners</a></b>()
    :
                                        void<div class="mdesc"><div class="short">Removes all managed listeners for this object.</div><div class="long">Removes all managed listeners for this object.<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#clearManagedListeners" ext:member="#clearManagedListeners" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Proxy-create"></a><b><a href="source/Proxy.html#method-Ext.data.Proxy-create">create</a></b>(&nbsp;<code>Ext.data.Operation&nbsp;operation</code>,&nbsp;<code>Function&nbsp;callback</code>,&nbsp;<code>Object&nbsp;scope</code>&nbsp;)
    :
                                        void<div class="mdesc"><div class="short">Performs the given create operation.</div><div class="long">Performs the given create operation.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>operation</code> : Ext.data.Operation<div class="sub-desc">The Operation to perform</div></li><li><code>callback</code> : Function<div class="sub-desc">Callback function to be called when the Operation has completed (whether successful or not)</div></li><li><code>scope</code> : Object<div class="sub-desc">Scope to execute the callback function in</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Proxy.html#create" ext:member="#create" ext:cls="Ext.data.Proxy">Proxy</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Proxy-destroy"></a><b><a href="source/Proxy.html#method-Ext.data.Proxy-destroy">destroy</a></b>(&nbsp;<code>Ext.data.Operation&nbsp;operation</code>,&nbsp;<code>Function&nbsp;callback</code>,&nbsp;<code>Object&nbsp;scope</code>&nbsp;)
    :
                                        void<div class="mdesc"><div class="short">Performs the given destroy operation.</div><div class="long">Performs the given destroy operation.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>operation</code> : Ext.data.Operation<div class="sub-desc">The Operation to perform</div></li><li><code>callback</code> : Function<div class="sub-desc">Callback function to be called when the Operation has completed (whether successful or not)</div></li><li><code>scope</code> : Object<div class="sub-desc">Scope to execute the callback function in</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Proxy.html#destroy" ext:member="#destroy" ext:cls="Ext.data.Proxy">Proxy</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-enableBubble"></a><b><a href="source/Observable.html#method-Ext.util.Observable-enableBubble">enableBubble</a></b>(&nbsp;<code>String/Array&nbsp;events</code>&nbsp;)
    :
                                        void<div class="mdesc"><div class="short">Enables events fired by this Observable to bubble up an owner hierarchy by calling
this.getBubbleTarget() if present....</div><div class="long"><p>Enables events fired by this Observable to bubble up an owner hierarchy by calling
<code>this.getBubbleTarget()</code> if present. There is no implementation in the Observable base class.</p>
<p>This is commonly used by Ext.Components to bubble events to owner Containers. See <a href="output/Ext.Component.getBubbleTarget.html" ext:cls="Ext.Component.getBubbleTarget">Ext.Component.getBubbleTarget</a>. The default
implementation in Ext.Component returns the Component's immediate owner. But if a known target is required, this can be overridden to
access the required target more quickly.</p>
<p>Example:</p><pre><code>Ext.override(Ext.form.Field, {
<i>//  Add functionality to Field&#39;s initComponent to enable the change event to bubble</i>
initComponent : Ext.createSequence(Ext.form.Field.prototype.initComponent, <b>function</b>() {
    this.enableBubble(<em>'change'</em>);
}),

<i>//  We know that we want Field&#39;s events to bubble directly to the FormPanel.</i>
getBubbleTarget : <b>function</b>() {
    <b>if</b> (!this.formPanel) {
        this.formPanel = this.findParentByType(<em>'form'</em>);
    }
    <b>return</b> this.formPanel;
}
});

<b>var</b> myForm = <b>new</b> Ext.formPanel({
title: <em>'User Details'</em>,
items: [{
    ...
}],
listeners: {
    change: <b>function</b>() {
        <i>// Title goes red <b>if</b> form has been modified.</i>
        myForm.header.setStyle(<em>'color'</em>, <em>'red'</em>);
    }
}
});</code></pre><div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>events</code> : String/Array<div class="sub-desc">The event name to bubble, or an Array of event names.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#enableBubble" ext:member="#enableBubble" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-fireEvent"></a><b><a href="source/Observable.html#method-Ext.util.Observable-fireEvent">fireEvent</a></b>(&nbsp;<code>String&nbsp;eventName</code>,&nbsp;<code>Object...&nbsp;args</code>&nbsp;)
    :
                                        Boolean<div class="mdesc"><div class="short">Fires the specified event with the passed parameters (minus the event name).
An event may be set to bubble up an Obse...</div><div class="long"><p>Fires the specified event with the passed parameters (minus the event name).</p>
<p>An event may be set to bubble up an Observable parent hierarchy (See <a href="output/Ext.Component.html#Ext.Component-getBubbleTarget" ext:member="getBubbleTarget" ext:cls="Ext.Component">Ext.Component.getBubbleTarget</a>)
by calling <a href="output/Ext.util.Observable.html#Ext.util.Observable-enableBubble" ext:member="enableBubble" ext:cls="Ext.util.Observable">enableBubble</a>.</p><div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The name of the event to fire.</div></li><li><code>args</code> : Object...<div class="sub-desc">Variable number of parameters are passed to handlers.</div></li></ul><strong>Returns:</strong><ul><li><code>Boolean</code><div class="sub-desc">returns false if any of the handlers return false otherwise it returns true.</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#fireEvent" ext:member="#fireEvent" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Proxy-getModel"></a><b><a href="source/Proxy.html#method-Ext.data.Proxy-getModel">getModel</a></b>()
    :
                                        Ext.data.Model<div class="mdesc"><div class="short">Returns the model attached to this Proxy</div><div class="long">Returns the model attached to this Proxy<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li><code>Ext.data.Model</code><div class="sub-desc">The model</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Proxy.html#getModel" ext:member="#getModel" ext:cls="Ext.data.Proxy">Proxy</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Proxy-getReader"></a><b><a href="source/Proxy.html#method-Ext.data.Proxy-getReader">getReader</a></b>()
    :
                                        Ext.data.Reader<div class="mdesc"><div class="short">Returns the reader currently attached to this proxy instance</div><div class="long">Returns the reader currently attached to this proxy instance<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li><code>Ext.data.Reader</code><div class="sub-desc">The Reader instance</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Proxy.html#getReader" ext:member="#getReader" ext:cls="Ext.data.Proxy">Proxy</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Proxy-getWriter"></a><b><a href="source/Proxy.html#method-Ext.data.Proxy-getWriter">getWriter</a></b>()
    :
                                        Ext.data.Writer<div class="mdesc"><div class="short">Returns the writer currently attached to this proxy instance</div><div class="long">Returns the writer currently attached to this proxy instance<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li><code>Ext.data.Writer</code><div class="sub-desc">The Writer instance</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Proxy.html#getWriter" ext:member="#getWriter" ext:cls="Ext.data.Proxy">Proxy</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-hasListener"></a><b><a href="source/Observable.html#method-Ext.util.Observable-hasListener">hasListener</a></b>(&nbsp;<code>String&nbsp;eventName</code>&nbsp;)
    :
                                        Boolean<div class="mdesc"><div class="short">Checks to see if this object has any listeners for a specified event</div><div class="long">Checks to see if this object has any listeners for a specified event<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The name of the event to check for</div></li></ul><strong>Returns:</strong><ul><li><code>Boolean</code><div class="sub-desc">True if the event is being listened for, else false</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#hasListener" ext:member="#hasListener" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-on"></a><b><a href="source/Observable.html#method-Ext.util.Observable-on">on</a></b>(&nbsp;<code>String&nbsp;eventName</code>,&nbsp;<code>Function&nbsp;handler</code>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;scope</code>]</span>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;options</code>]</span>&nbsp;)
    :
                                        void<div class="mdesc"><div class="short">Appends an event handler to this object (shorthand for addListener.)</div><div class="long">Appends an event handler to this object (shorthand for <a href="output/Ext.util.Observable.html#Ext.util.Observable-addListener" ext:member="addListener" ext:cls="Ext.util.Observable">addListener</a>.)<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The type of event to listen for</div></li><li><code>handler</code> : Function<div class="sub-desc">The method the event invokes</div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope (<code><b>this</b></code> reference) in which the handler function is executed.
<b>If omitted, defaults to the object which fired the event.</b></div></li><li><code>options</code> : Object<div class="sub-desc">(optional) An object containing handler configuration.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#on" ext:member="#on" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable "><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.MemoryProxy-read"></a><b><a href="source/MemoryProxy.html#method-Ext.data.MemoryProxy-read">read</a></b>(&nbsp;<code>Ext.data.Operation&nbsp;operation</code>,&nbsp;<code>Function&nbsp;callback</code>,&nbsp;<code>Object&nbsp;scope</code>&nbsp;)
    :
                                        void<div class="mdesc"><div class="short">Reads data from the configured data object. Uses the Proxy's reader, if present</div><div class="long">Reads data from the configured <a href="output/Ext.data.MemoryProxy.html#Ext.data.MemoryProxy-data" ext:member="data" ext:cls="Ext.data.MemoryProxy">data</a> object. Uses the Proxy's <a href="output/Ext.data.MemoryProxy.html#Ext.data.MemoryProxy-reader" ext:member="reader" ext:cls="Ext.data.MemoryProxy">reader</a>, if present<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>operation</code> : Ext.data.Operation<div class="sub-desc">The read Operation</div></li><li><code>callback</code> : Function<div class="sub-desc">The callback to call when reading has completed</div></li><li><code>scope</code> : Object<div class="sub-desc">The scope to call the callback function in</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource">MemoryProxy</td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-relayEvents"></a><b><a href="source/Observable.html#method-Ext.util.Observable-relayEvents">relayEvents</a></b>(&nbsp;<code>Object&nbsp;o</code>,&nbsp;<code>Array&nbsp;events</code>&nbsp;)
    :
                                        void<div class="mdesc"><div class="short">Relays selected events from the specified Observable as if the events were fired by this.</div><div class="long">Relays selected events from the specified Observable as if the events were fired by <tt><b>this</b></tt>.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>o</code> : Object<div class="sub-desc">The Observable whose events this object is to relay.</div></li><li><code>events</code> : Array<div class="sub-desc">Array of event names to relay.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#relayEvents" ext:member="#relayEvents" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-removeListener"></a><b><a href="source/Observable.html#method-Ext.util.Observable-removeListener">removeListener</a></b>(&nbsp;<code>String&nbsp;eventName</code>,&nbsp;<code>Function&nbsp;handler</code>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;scope</code>]</span>&nbsp;)
    :
                                        void<div class="mdesc"><div class="short">Removes an event handler.</div><div class="long">Removes an event handler.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The type of event the handler was associated with.</div></li><li><code>handler</code> : Function<div class="sub-desc">The handler to remove. <b>This must be a reference to the function passed into the <a href="output/Ext.util.Observable.html#Ext.util.Observable-addListener" ext:member="addListener" ext:cls="Ext.util.Observable">addListener</a> call.</b></div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope originally specified for the handler.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#removeListener" ext:member="#removeListener" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-removeManagedListener"></a><b><a href="source/Observable.html#method-Ext.util.Observable-removeManagedListener">removeManagedListener</a></b>(&nbsp;<code>Observable|Element&nbsp;item</code>,&nbsp;<code>Object|String&nbsp;ename</code>,&nbsp;<code>Function&nbsp;fn</code>,&nbsp;<code>Object&nbsp;scope</code>&nbsp;)
    :
                                        void<div class="mdesc"><div class="short">Removes listeners that were added by the mon method.</div><div class="long">Removes listeners that were added by the <a href="output/Ext.util.Observable.html#Ext.util.Observable-mon" ext:member="mon" ext:cls="Ext.util.Observable">mon</a> method.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>item</code> : Observable|Element<div class="sub-desc">The item from which to remove a listener/listeners.</div></li><li><code>ename</code> : Object|String<div class="sub-desc">The event name, or an object containing event name properties.</div></li><li><code>fn</code> : Function<div class="sub-desc">Optional. If the <code>ename</code> parameter was an event name, this
is the handler function.</div></li><li><code>scope</code> : Object<div class="sub-desc">Optional. If the <code>ename</code> parameter was an event name, this
is the scope (<code>this</code> reference) in which the handler function is executed.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#removeManagedListener" ext:member="#removeManagedListener" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-resumeEvents"></a><b><a href="source/Observable.html#method-Ext.util.Observable-resumeEvents">resumeEvents</a></b>()
    :
                                        void<div class="mdesc"><div class="short">Resume firing events. (see suspendEvents)
If events were suspended using the queueSuspended parameter, then all
event...</div><div class="long">Resume firing events. (see <a href="output/Ext.util.Observable.html#Ext.util.Observable-suspendEvents" ext:member="suspendEvents" ext:cls="Ext.util.Observable">suspendEvents</a>)
If events were suspended using the <tt><b>queueSuspended</b></tt> parameter, then all
events fired during event suspension will be sent to any listeners now.<div class="mdetail-params"><strong>Parameters:</strong><ul><li>None.</li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#resumeEvents" ext:member="#resumeEvents" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Proxy-setModel"></a><b><a href="source/Proxy.html#method-Ext.data.Proxy-setModel">setModel</a></b>(&nbsp;<code>String|Ext.data.Model&nbsp;model</code>,&nbsp;<code>Boolean&nbsp;setOnStore</code>&nbsp;)
    :
                                        void<div class="mdesc"><div class="short">Sets the model associated with this proxy. This will only usually be called by a Store</div><div class="long">Sets the model associated with this proxy. This will only usually be called by a Store<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>model</code> : String|Ext.data.Model<div class="sub-desc">The new model. Can be either the model name string,
or a reference to the model's constructor</div></li><li><code>setOnStore</code> : Boolean<div class="sub-desc">Sets the new model on the associated Store, if one is present</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Proxy.html#setModel" ext:member="#setModel" ext:cls="Ext.data.Proxy">Proxy</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Proxy-setReader"></a><b><a href="source/Proxy.html#method-Ext.data.Proxy-setReader">setReader</a></b>(&nbsp;<code>String|Object|Ext.data.Reader&nbsp;reader</code>&nbsp;)
    :
                                        Ext.data.Reader<div class="mdesc"><div class="short">Sets the Proxy's Reader by string, config object or Reader instance</div><div class="long">Sets the Proxy's Reader by string, config object or Reader instance<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>reader</code> : String|Object|Ext.data.Reader<div class="sub-desc">The new Reader, which can be either a type string, a configuration object
or an Ext.data.Reader instance</div></li></ul><strong>Returns:</strong><ul><li><code>Ext.data.Reader</code><div class="sub-desc">The attached Reader object</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Proxy.html#setReader" ext:member="#setReader" ext:cls="Ext.data.Proxy">Proxy</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Proxy-setWriter"></a><b><a href="source/Proxy.html#method-Ext.data.Proxy-setWriter">setWriter</a></b>(&nbsp;<code>String|Object|Ext.data.Writer&nbsp;writer</code>&nbsp;)
    :
                                        Ext.data.Writer<div class="mdesc"><div class="short">Sets the Proxy's Writer by string, config object or Writer instance</div><div class="long">Sets the Proxy's Writer by string, config object or Writer instance<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>writer</code> : String|Object|Ext.data.Writer<div class="sub-desc">The new Writer, which can be either a type string, a configuration object
or an Ext.data.Writer instance</div></li></ul><strong>Returns:</strong><ul><li><code>Ext.data.Writer</code><div class="sub-desc">The attached Writer object</div></li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Proxy.html#setWriter" ext:member="#setWriter" ext:cls="Ext.data.Proxy">Proxy</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-suspendEvents"></a><b><a href="source/Observable.html#method-Ext.util.Observable-suspendEvents">suspendEvents</a></b>(&nbsp;<code>Boolean&nbsp;queueSuspended</code>&nbsp;)
    :
                                        void<div class="mdesc"><div class="short">Suspend the firing of all events. (see resumeEvents)</div><div class="long">Suspend the firing of all events. (see <a href="output/Ext.util.Observable.html#Ext.util.Observable-resumeEvents" ext:member="resumeEvents" ext:cls="Ext.util.Observable">resumeEvents</a>)<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>queueSuspended</code> : Boolean<div class="sub-desc">Pass as true to queue up suspended events to be fired
after the <a href="output/Ext.util.Observable.html#Ext.util.Observable-resumeEvents" ext:member="resumeEvents" ext:cls="Ext.util.Observable">resumeEvents</a> call instead of discarding all suspended events;</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#suspendEvents" ext:member="#suspendEvents" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.util.Observable-un"></a><b><a href="source/Observable.html#method-Ext.util.Observable-un">un</a></b>(&nbsp;<code>String&nbsp;eventName</code>,&nbsp;<code>Function&nbsp;handler</code>,&nbsp;<span title="Optional" class="optional">[<code>Object&nbsp;scope</code>]</span>&nbsp;)
    :
                                        void<div class="mdesc"><div class="short">Removes an event handler (shorthand for removeListener.)</div><div class="long">Removes an event handler (shorthand for <a href="output/Ext.util.Observable.html#Ext.util.Observable-removeListener" ext:member="removeListener" ext:cls="Ext.util.Observable">removeListener</a>.)<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>eventName</code> : String<div class="sub-desc">The type of event the handler was associated with.</div></li><li><code>handler</code> : Function<div class="sub-desc">The handler to remove. <b>This must be a reference to the function passed into the <a href="output/Ext.util.Observable.html#Ext.util.Observable-addListener" ext:member="addListener" ext:cls="Ext.util.Observable">addListener</a> call.</b></div></li><li><code>scope</code> : Object<div class="sub-desc">(optional) The scope originally specified for the handler.</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.util.Observable.html#un" ext:member="#un" ext:cls="Ext.util.Observable">Observable</a></td></tr><tr class="method-row expandable inherited"><td class="micon"><a href="#expand" class="exi">&nbsp;</a></td><td class="sig"><a id="Ext.data.Proxy-update"></a><b><a href="source/Proxy.html#method-Ext.data.Proxy-update">update</a></b>(&nbsp;<code>Ext.data.Operation&nbsp;operation</code>,&nbsp;<code>Function&nbsp;callback</code>,&nbsp;<code>Object&nbsp;scope</code>&nbsp;)
    :
                                        void<div class="mdesc"><div class="short">Performs the given update operation.</div><div class="long">Performs the given update operation.<div class="mdetail-params"><strong>Parameters:</strong><ul><li><code>operation</code> : Ext.data.Operation<div class="sub-desc">The Operation to perform</div></li><li><code>callback</code> : Function<div class="sub-desc">Callback function to be called when the Operation has completed (whether successful or not)</div></li><li><code>scope</code> : Object<div class="sub-desc">Scope to execute the callback function in</div></li></ul><strong>Returns:</strong><ul><li>void</li></ul></div></div></div></td><td class="msource"><a href="output/Ext.data.Proxy.html#update" ext:member="#update" ext:cls="Ext.data.Proxy">Proxy</a></td></tr></tbody></table><a id="Ext.data.MemoryProxy-events"></a><h2>Public Events</h2><div class="no-members">This class has no public events.</div></div>